data AB a = Nil | Bin (AB a) a (AB a) deriving Show

vacio :: AB a -> Bool
vacio Nil = True
vacio (Bin izq raiz der) = False

negacion :: AB Bool -> AB Bool
negacion Nil = Nil
negacion (Bin izq raiz der) = (Bin (negacion izq) (not raiz) (negacion der))

productoAB :: AB Int -> Int
productoAB Nil = 1
productoAB (Bin izq raiz der) = raiz * productoAB izq * productoAB der


